from enum import Enum


# 这里是详细的错误原因
class SCE(Enum):
    """状态码枚举类 全称为 StatusCodeEnum"""

    no_enum = (1000, '尚未分配错误码')

    OK = (200, '返回数据成功')
    ERROR = (-1, '请求失败')
    SERVER_ERR = (500, '服务器异常，请联系管理员')
    unexpected_ERR = (700, '出现预料之外的异常，请联系管理员')
    DB_ERR = (100, '数据库异常，请联系管理员')

    illegal_token = (6004, '登录状态异常，请退出并重新登陆')
    ParamError = (600, '传入参数类型错误')
    UserNotExist = (600, '用户不存在，请尝试重新登录或联系管理员')

    # 用户和登录权限相关业务错误状态码
    F1 = ('F1', '用户不存在')
    F2 = ('F2', '要删除的用户不存在')
    F3 = ('F3', '用添加的用户中用户名称已经存在')
    F4 = ('F4', '要修改的用户不存在')
    F5 = ('F5', '要修改的用户中用户名重复')
    F6 = ('F6', '要修改权限的用户不存在')

    # 供应商管理部分
    supplier_already_exists = (6100, '要添加的供应商已存在')
    failed_to_delete_supplier = (6101, '要删除的供应商不存在')
    failed_to_update_supplier = (6102, '要修改的供应商不存在')

    # 处理方管理部分
    EA1 = ('EA1', '要添加的处理方中处理方名称重复')

    # 出入库部分
    E1 = (1, '出库或入库的件数或支数不得为零')
    E2 = (2, '执行出库的物料库存将小于零，禁止出库')

    @property
    def code(self):
        """获取状态码"""
        return self.value[0]

    @property
    def errmsg(self):
        """获取状态码信息"""
        return self.value[1]
